///<sumary>
/// Acesso a tabela de Data de Movimento do Sistema de Controle de Ordens (TORDATMOV)
/// Data: 07/12/2007
/// Autor: Diogo Milanez
/// Obs: Criacao da classe
///</sumary>
using System;
using System.Collections.Generic;
using System.Text;
using Sinacor.Infra.Service.Data;
using Sinacor.Infra.Service.Security.Authorization;
using System.Data.Common;
using System.Data;
using Sinacor.Servico.Bovespa.BovespaBase.Util;


namespace Sinacor.Servico.Bovespa.Ordens.ResourceAccess
{
	public class MovimentoControleOrdens : BaseResourceAccess
	{
        public MovimentoControleOrdens()
            : base(AuthorizationContext.Current.CompanyId) 
        {
        
        }
		/// <summary>
		/// metodo responsavel por recuperar a data de movimento do sistema de controle de ordens
		/// Data: 07/12/2007
		/// Autor: Diogo Milanez
		/// Obs: Criacao do metodo
		/// </summary>
		/// <param name="modulo"></param>
		/// <returns></returns>
		public DateTime ConsultarDataMovimento()
		{
			DbCommand dbCommand = null;            
            dbCommand = this.DataBase.GetSqlStringCommand("SELECT DT_DATMOV FROM TORDATMOV");
            return Convert.ToDateTime(this.DataBase.ExecuteScalar(dbCommand));
		}

		/// <summary>
		/// metodo responsavel por recuperar a tipo de movimento do sistema de controle de ordens
		/// Data: 07/12/2007
		/// Autor: Diogo Milanez
		/// Obs: Criacao do metodo
		/// </summary>
		/// <param name="modulo"></param>
		/// <returns>A - aberto F - fechado</returns>
		public string ConsultarTipoMovimento()
		{
			DbCommand dbCommand = null;
			dbCommand = this.DataBase.GetSqlStringCommand("SELECT TP_MOVIMENTO FROM TORDATMOV");
			return Convert.ToString(this.DataBase.ExecuteScalar(dbCommand));
		}

		/// <summary>
		/// Verifica se o sinacor foi aberto
        /// Modelo de Domonio do campo TP_MOVIMENTO
        /// A = Aberto
        /// F = Fechado
        /// E = Fechamento em Andamento
		/// </summary>
		/// <returns></returns>
		public bool SistemaAberto(){
		    DbCommand dbCommand = null;
		    DateTime dtDataMovimento = DateTime.Now;
		    string sTipoMovimento = string.Empty;
			dbCommand = this.DataBase.GetSqlStringCommand("SELECT DT_DATMOV, TP_MOVIMENTO FROM TORDATMOV");
			using(IDataReader dr = this.DataBase.ExecuteReader(dbCommand)){
			    while(dr.Read()){
			        dtDataMovimento = dr.GetValue<DateTime>("DT_DATMOV");
			        sTipoMovimento = dr.GetValue<string>("TP_MOVIMENTO");
			    }
			}
			
			if(dtDataMovimento.Date == DateTime.Now.Date && sTipoMovimento == "A"){
			    return true;
			}else{
			    return false;
			}
		}
	}
}
